/*
* 剪枝方法
* 1.优化搜索顺序：从大到小枚举
* 2.排除等效冗余：(1)按照组合数枚举 
                 (2)如果当前木棍dfs失败 && 下一根木棍和当前木棍长度相同，下一根木棍可以直接跳过
                 (3)如果是木棒的第一根木棍直接失败，则之前的方案一定失败（枚举当前木棒的合法解需要组合之前木棒的木棍
                 (4)放到最后一个失败，则之前方案一定失败，参考(3), 木棍交换不影响正确性
* 3.可行性剪枝:不符合规则，直接剪枝
* 4.最优化剪枝：不是最优解，直接剪枝
* 5.记忆化搜索：DP
*/
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
// #define ONLINE_GUDGE
const int N = 70, INF = 0x3f3f3f3f;
int n;
int w[N], sum, length;
bool st[N];


bool dfs(int u, int s, int start) // 第u个木棒 当前木棍长度 start之前木棍已经枚举
{
    if(u * length == sum) return true;
    if(s == length) return dfs(u + 1, 0, 0); // 从0开始枚举，之前有因为剪枝3-2等长跳过的

    // 剪枝3-1: 从start开始枚举
    for(int i = start; i < n; i++)
    {
        if(st[i]) continue; // 已经用了
        if(s + w[i] > length) continue;// 可行性剪枝

        st[i] = true;
        if(dfs(u, s + w[i], i + 1)) return true;
        st[i] = false; // 恢复现场

        // 剪枝3-3：放开头不行，之前方案错误
        if(!s) return false;

        // 剪枝3-4: 放结尾不行，之前方案不行
        if(s + w[i] == length) return false;

        // 剪枝3-2: 当前木棍失败，后续等长木棍直接跳过
        int j = i;
        while(j < n && w[j] == w[i]) j++;
        i = j-1;
    }

    return false;
}

int main()
{
    #ifdef ONLINE_GUDGE

    #else
        freopen("./in.txt", "r", stdin);
    #endif
    ios::sync_with_stdio(0); cin.tie(0);

    while(cin >> n, n)
    {
        memset(st, 0, sizeof st);
        sum = 0;

        for(int i = 0; i < n; i++){
            cin >> w[i];
            sum += w[i];
        }

        // 剪枝2：优化搜索顺序
        sort(w, w + n, greater<int>());

        #ifdef DEBUG
        printf("n:%d sum:%d\n", n, sum);
        printf("w[]: ");
        for(int i = 0; i < n; i++) printf("%d ", w[i]);
        printf("\n");
        #endif

        length = 1;
        while(true)
        {
            // 剪枝1
            if(sum % length == 0 && dfs(0, 0, 0)) // 整除 有解
            {
                cout << length << endl;
                break;
            }
            length++;

            if(length > sum) break;
        }

    }
    
    
    return 0;
}